package com.zhentao.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 参数定义表：定义参数的基本属性和规则
 * @TableName param_definition
 */
@TableName(value ="param_definition")
@Data
public class ParamDefinition implements Serializable {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 参数键，全局唯一
     */
    private String paramKey;

    /**
     * 参数名称
     */
    private String paramName;

    /**
     * 分类ID
     */
    private Long categoryId;

    /**
     * 数据类型：STRING/NUMBER/BOOLEAN/JSON
     */
    private String dataType;

    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * 取值范围，JSON格式字符串
     */
    private String valueRange;

    /**
     * 参数详细描述
     */
    private String description;

    /**
     * 是否必填：1-是，0-否
     */
    private Integer isRequired;

    /**
     * 是否系统参数：1-是，0-否
     */
    private Integer isSystem;

    /**
     * 校验规则，JSON格式字符串
     */
    private String validationRule;

    /**
     * 标签，逗号分隔
     */
    private String tags;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}